package com.ruoyi.common.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 用户信用积分变动记录表，记录用户信用分的所有变动情况
 * </p>
 *
 * @author jiabao
 * @since 2025-06-25
 */
@Data
@TableName("business_credit_records")
@ApiModel(value = "CreditRecords对象", description = "用户信用积分变动记录表，记录用户信用分的所有变动情况")
public class CreditRecords implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 记录ID，主键自增
     */
    @ApiModelProperty("记录ID，主键自增")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 关联business_users表的用户ID
     */
    @TableField("user_id")
    @ApiModelProperty("关联business_users表的用户ID")
    private Long userId;

    /**
     * 信用分变动值(正数为增加，负数为减少)
     */
    @TableField("change_value")
    @ApiModelProperty("信用分变动值(正数为增加，负数为减少)")
    private Integer changeValue;

    /**
     * 变动后的信用积分(记录当前信用分)
     */
    @TableField("current_score")
    @ApiModelProperty("变动后的信用积分(记录当前信用分)")
    private Integer currentScore;

    /**
     * 类型：1-按时参加 2-违约 3-好评 4-差评 5-管理员调整
     */
    @TableField("type")
    @ApiModelProperty("类型：1-按时参加 2-违约 3-好评 4-差评 5-管理员调整")
    private Integer type;

    /**
     * 关联业务ID(订单ID/评论ID等，记录信用分变动来源)
     */
    @TableField("related_id")
    @ApiModelProperty("关联业务ID(订单ID/评论ID等，记录信用分变动来源)")
    private Long relatedId;

    /**
     * 变动描述(记录信用分变动原因)
     */
    @TableField("description")
    @ApiModelProperty("变动描述(记录信用分变动原因)")
    private String description;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @TableField("created_at")
    private LocalDateTime createdAt;
}
